A growing number of computer users today rely on portable, multi-purpose telephony devices such as the “Sidekick” designed by Danger, Inc. of Palo Alto, Calif., and distributed by T-Mobile, Inc. These portable devices may include a variety of messaging, data management and voice capabilities such as, for example, electronic messaging (e.g., Email, IM), personal information management (“PIM”) (e.g., contacts, calendar) and standard wireless telephony capabilities.
Given the complexity of the hardware and software used to support these features, a significant amount of time is spent debugging the initial or “beta” versions of these devices. When a particular device crashes, debugging often involves capturing the state of the device at the time of the crash. The state information may include software information, hardware information, network connectivity information or various combinations thereof. Once collected, the state information may be analyzed and compared with the state information from other devices to isolate the source of the problem.
One problem which exists with current debugging techniques, however, is that a vast amount of information may be associated with the current “state” of a device. This is particularly problematic with respect to wireless devices or other types of portable devices in which the bandwidth of the communication channel to the device is limited. Accordingly, more efficient techniques for debugging computing/telephony devices are needed.